import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import { VueJsonp } from 'vue-jsonp'
Vue.use(VueJsonp)
Vue.prototype.axios = axios
import 'lib-flexible/flexible.js'
import TIM from 'tim-js-sdk';
import COS from 'cos-js-sdk-v5';
// import '../util/rem'
import './assets/reset.css'
import VueCookies from 'vue-cookies'
Vue.use(VueCookies)
Vue.config.productionTip = false

// 创建 SDK 实例，TIM.create() 方法对于同一个 SDKAppID 只会返回同一份实例
let options = {
  SDKAppID: 1400486024 // 接入时需要将0替换为您的即时通信应用的 SDKAppID
};
let tim = TIM.create(options); // SDK 实例通常用 tim 表示
// 设置 SDK 日志输出级别，详细分级请参见 setLogLevel 接口的说明
tim.setLogLevel(0); // 普通级别，日志量较多，接入时建议使用
// tim.setLogLevel(1); // release级别，SDK 输出关键信息，生产环境时建议使用

// 将腾讯云对象存储服务 SDK （以下简称 COS SDK）注册为插件，IM SDK 发送文件、图片等消息时，需要用到腾讯云的 COS 服务
tim.registerPlugin({'cos-wx-sdk': COS})
Vue.prototype.tim = tim
Vue.prototype.TIM = TIM


//请求拦截器
axios.interceptors.request.use(
  async config => {
    // const message = VueCookies.get('token');
    // Vue.prototype.x_token = message.d;
    // if (message) {
    //   config.headers["Authorization"] = `Bearer ${message.substring(1,message.length-1)}`;
    // }

    return config;
    // Vue.prototype.x_token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEwMDAyMTIzLCJ0b2tlbiI6ImRhMDY1YTExMzMyZjFjNDZlMzAxMDMxMzlkMjI1ZDhkIiwiY2xpZW50IjoiWElBT0JPVCIsInBsYXRmb3JtIjoiV0VCIiwic3ViIjoiWElBT0JPVCIsImlzcyI6ImJsdWVmb2N1cy5jb20iLCJuYmYiOjE2MzI0ODAwNzB9.7rW-_GjxfDa7cl3zRkGoSFhGyrM0rhXuSn4Qch47Ups";
    //   config.headers["X-Token"] = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEwMDAyMTIzLCJ0b2tlbiI6ImRhMDY1YTExMzMyZjFjNDZlMzAxMDMxMzlkMjI1ZDhkIiwiY2xpZW50IjoiWElBT0JPVCIsInBsYXRmb3JtIjoiV0VCIiwic3ViIjoiWElBT0JPVCIsImlzcyI6ImJsdWVmb2N1cy5jb20iLCJuYmYiOjE2MzI0ODAwNzB9.7rW-_GjxfDa7cl3zRkGoSFhGyrM0rhXuSn4Qch47Ups";
    //   return config;
    },
    error => {
      return Promise.error(error);
    })

    // 响应拦截器
axios.interceptors.response.use(
  async response => {
      // 如果返回的状态码为200，说明接口请求成功，可以正常拿到数据
      // 否则的话抛出错误
      return Promise.resolve(response);
    },
    // 服务器状态码不是2开头的的情况
    // 然后根据返回的状态码进行一些操作，例如登录过期提示，错误提示等
    error => {
      console.log(error)
       
    }
);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
